package com.kakame.tibbers.admin.controller;

import java.util.ArrayList;
import java.util.List;

import com.jfinal.aop.Duang;
import com.jfinal.core.Controller;
import com.kakame.tibbers.common.models.AuthMenu;
import com.kakame.tibbers.service.auth.MenuService;

public class IndexController extends Controller {
	
	private MenuService menuService = Duang.duang(MenuService.class);
	
	public void index() {
		
		List<AuthMenu> parents = new ArrayList<AuthMenu>();
		
		List<AuthMenu> menuList = menuService.list();
		for (AuthMenu menu : menuList) {
			if(0 == menu.getPid()) {  // 查询出所有的父级菜单
				parents.add(menu);
			}
		}
		generateMenus(parents, menuList);
		
		setAttr("menuList", parents);
		
		renderTemplate("index.html");
	}
	
	/**
	 * 后台主页页面
	 * @auth ex-hejm
	 * @date 2018年11月26日 下午2:01:57
	 */
	public void homepage() {
		renderTemplate("homepage.html");
	}
	
	/**
	 * 生成菜单层级结构
	 * @auth 何家明
	 * @date 2018年11月19日 下午2:32:40
	 * @param menuList
	 */
	private void generateMenus(List<AuthMenu> parents, List<AuthMenu> menuList) {
		for (AuthMenu parent : parents) {
			List<AuthMenu> childs = new ArrayList<AuthMenu>();
			for (AuthMenu son : menuList) {
				if(son.getPid() == parent.getId()) {  // 查询父级下的子级菜单
					childs.add(son);
				}
			}
			generateMenus(childs, menuList);  // 递归生成
			parent.setChildList(childs);
		}
	}
}